package cn.wolfcode.trip.base.service;

import cn.wolfcode.trip.base.domain.TogetherTrip;
import cn.wolfcode.trip.base.domain.TogetherTrip;
import cn.wolfcode.trip.base.domain.User;
import cn.wolfcode.trip.base.query.FollowQueryObject;
import cn.wolfcode.trip.base.query.QueryObject;
import cn.wolfcode.trip.base.query.TogetherTripQueryObject;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface ITogetherTripService {
   
    PageInfo<TogetherTrip> query(TogetherTripQueryObject qo);


    void saveOrUpdate(TogetherTrip togetherTrip);

    TogetherTrip getById(Long id);

    void save(TogetherTrip togetherTrip);

    TogetherTrip selectTogetherByUserId(Long togetherId, Long userId);

    void insertUserAndTogetherRelation(Long togetherId, Long userId);

    void deleteTogetherAndUserRelation(Long togetherId, Long userId);

    List<User> getUsersByTogetherId(Long togetherId);

    void updateApplyNumById(Long id, Integer applyNum);

    TogetherTrip selectCollectionByUserId(Long togetherId, Long userId);

    void insertUserAndTogetherRelation1(Long togetherId, Long userId);

    void deleteTogetherAndUserRelation1(Long togetherId, Long userId);

    void updateCollectionNumById(Long id, Integer collectionNum);

    List<User> getUsersByTogetherCollectionId(Long togetherId);

    PageInfo selectAppTogetherTrips(TogetherTripQueryObject qo);

    PageInfo selectColTogetherTrips(TogetherTripQueryObject qo);
}
